home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / lib / perl / 5.10.0 / lib.pm < prev    next >
Text File  |  2009-10-01  |  3KB  |  117 lines

  1. package lib;
  2.  
  3. # THIS FILE IS AUTOMATICALLY GENERATED FROM lib_pm.PL.
  4. # ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN BY THE NEXT PERL BUILD.
  5.  
  6. use Config;
  7.  
  8. use strict;
  9.  
  10. my $archname         = $Config{archname};
  11. my $version          = $Config{version};
  12. my @inc_version_list = reverse split / /, $Config{inc_version_list};
  13.  
  14. our @ORIG_INC = @INC;    # take a handy copy of 'original' value
  15. our $VERSION = '0.5565';
  16. my $Is_MacOS = $^O eq 'MacOS';
  17. my $Mac_FS;
  18. if ($Is_MacOS) {
  19.     require File::Spec;
  20.     $Mac_FS = eval { require Mac::FileSpec::Unixish };
  21. }
  22.  
  23. sub import {
  24.     shift;
  25.  
  26.     my %names;
  27.     foreach (reverse @_) {
  28.     my $path = $_;        # we'll be modifying it, so break the alias
  29.     if ($path eq '') {
  30.         require Carp;
  31.         Carp::carp("Empty compile time value given to use lib");
  32.     }
  33.  
  34.     $path = _nativize($path);
  35.  
  36.     if (-e $path && ! -d _) {
  37.         require Carp;
  38.         Carp::carp("Parameter to use lib must be directory, not file");
  39.     }
  40.     unshift(@INC, $path);
  41.     # Add any previous version directories we found at configure time
  42.     foreach my $incver (@inc_version_list)
  43.     {
  44.         my $dir = $Is_MacOS
  45.         ? File::Spec->catdir( $path, $incver )
  46.         : "$path/$incver";
  47.         unshift(@INC, $dir) if -d $dir;
  48.     }
  49.     # Put a corresponding archlib directory in front of $path if it
  50.     # looks like $path has an archlib directory below it.
  51.     my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir)
  52.         = _get_dirs($path);
  53.     unshift(@INC, $arch_dir)         if -d $arch_auto_dir;
  54.     unshift(@INC, $version_dir)      if -d $version_dir;
  55.     unshift(@INC, $version_arch_dir) if -d $version_arch_dir;
  56.     }
  57.  
  58.     # remove trailing duplicates
  59.     @INC = grep { ++$names{$_} == 1 } @INC;
  60.     return;
  61. }
  62.  
  63. sub unimport {
  64.     shift;
  65.  
  66.     my %names;
  67.     foreach (@_) {
  68.     my $path = _nativize($_);
  69.  
  70.     my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir)
  71.         = _get_dirs($path);
  72.     ++$names{$path};
  73.     ++$names{$arch_dir}         if -d $arch_auto_dir;
  74.     ++$names{$version_dir}      if -d $version_dir;
  75.     ++$names{$version_arch_dir} if -d $version_arch_dir;
  76.     }
  77.  
  78.     # Remove ALL instances of each named directory.
  79.     @INC = grep { !exists $names{$_} } @INC;
  80.     return;
  81. }
  82.  
  83. sub _get_dirs {
  84.     my($dir) = @_;
  85.     my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir);
  86.  
  87.     # we could use this for all platforms in the future, but leave it
  88.     # Mac-only for now, until there is more time for testing it.
  89.     if ($Is_MacOS) {
  90.     $arch_auto_dir    = File::Spec->catdir( $dir, $archname, 'auto' );
  91.     $arch_dir         = File::Spec->catdir( $dir, $archname, );
  92.     $version_dir      = File::Spec->catdir( $dir, $version );
  93.     $version_arch_dir = File::Spec->catdir( $dir, $version, $archname );
  94.     } else {
  95.     $arch_auto_dir    = "$dir/$archname/auto";
  96.     $arch_dir         = "$dir/$archname";
  97.     $version_dir      = "$dir/$version";
  98.     $version_arch_dir = "$dir/$version/$archname";
  99.     }
  100.     return($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir);
  101. }
  102.  
  103. sub _nativize {
  104.     my($dir) = @_;
  105.  
  106.     if ($Is_MacOS && $Mac_FS && ! -d $dir) {
  107.     $dir = Mac::FileSpec::Unixish::nativize($dir);
  108.     $dir .= ":" unless $dir =~ /:$/;
  109.     }
  110.  
  111.     return $dir;
  112. }
  113.  
  114. 1;
  115. __END__
  116.  
  117.